home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
data
/
ysuty2
/
ysuty2.h
< prev
next >
Wrap
Text File
|
1993-07-08
|
8KB
|
252 lines
/* Graphic User Interface structures */
struct button
{
int now; /* Current On/Off condition */
int prev; /* Previous On/Off condition */
};
struct buttonSwitch
{
int now; /* Current On/Off condition */
int prev; /* Previous On/Off condition */
int pmos; /* Previous Mouse Button */
};
struct pulldown
{
char *(*arg); /* 選択肢 */
int now,prev; /* Current,Previous On/Off condition */
int x,y; /* プルダウンされるメニューの表示位置 */
int fx,fy; /* フォントサイズ */
};
struct menu
{
char *(*arg); /* 選択肢 */
int cmd,prev; /* Current,Previous On/Off condition */
int fx,fy; /* Font Size */
};
struct dialogue
{
char *(*arg);
char *sw; /* sw[n]==1:n番が選択されている ==0:いない */
int now,prev; /* Current Point, Previous Point */
int pmos,pclk;/* Previous Mouse Button,Previous Mouse Released Clock */
int prechg; /* 直前に変化があった番号 */
int dspn; /* 画面に表示する選択肢の個数 */
int fx,fy; /* Font Size */
int single; /* 単一項目の選択 0:複数の選択 */
};
struct scrollbar
{
int argc; /* 全体の大きさ */
int dspn; /* そのうちで画面に出ている大きさ */
int ptr;
};
struct item
{
int id,x,y,lx,ly; /* 種類,表示位置,幅 */
struct item *prev; /* item list中で一つ前のitemへのポインタ */
struct item *next; /* item list中で一つ後のitemへのポインタ */
union
{
struct button bt;
struct buttonSwitch sw;
struct pulldown pd;
struct menu mn;
struct dialogue dl;
struct scrollbar sc;
} detail;
};
struct gc
{
int smod0; /* Screen Mode Page 0 */
int smod1; /* Screen Mode Page 1 */
int font12; /* 12Dot Font Flag */
int fx,fy; /* Font Size */
int wpage; /* Write Page */
int prior,disp; /* Priority Page, Display Page */
int wmode; /* Write Mode */
int color; /* Pen Color */
int vx1,vy1,vx2,vy2; /* View Port */
};
typedef struct gc GC;
typedef struct item ITEM;
#define BACKGROUND 0
#define BUTTON 1
#define SWITCH 2
#define PULLDOWN 3
#define MENU 4
#define DIALOGUE 5
#define LNGBAR 6
#define LATBAR 7
#define DBLCLIC 250
#define BACKGRAY (20*1024+20*32+20)
#define UPWHITE 32767
#define DOWNGRAY (8*1024+8*32+8)
#define PSET 0
#define PRESET 1
#define OR 2
#define AND 3
#define XOR 4
#define NOT 5
#define MATTE 6
#define PASTEL 7
#define OPAQUE 9
/* CHARUTY.C */
int YSC_arguments(char *line,char *argv[],int n);
void YSC_itoa(char *a,int i,int n);
char *YSC_lineHead(char *line);
char *YSC_lineTail(char *line);
void YSC_swapInt(int *a,int *b);
void YSC_swapChar(char *a,char *b);
void YSC_swapPointer(void **a,void **b);
/* CHKDRV.C */
int YSC_checkDrive(unsigned drv);
/* FILEUTY.C */
void YSC_changeExt(char *fname,char *ext);
int YSC_fsize(FILE *fp);
int YSC_getDosFiles(char *fn[],char *sd,int mx,char *pth,char *wc,char *bf);
void YSC_makeFullPath(char *ful,unsigned drv,char *path,char *fname);
void YSC_putExt(char *fname,char *ext);
void YSC_sortFiles(char *fname[],char *sbdir,int fs);
/* EUPLIB.C */
int YEU_abort();
int YEU_pause();
int YEU_percent(char *eupdat);
int YEU_play(char *eupdat,int loop);
int YEU_playFlag();
int YEU_prepare(char *eupdat,int loadFMB,int loadFMB);
int YEU_restart();
/* EGBUTY.C */
void YGB_box(char *work,int x0,int y0,int x1,int y1);
void YGB_boxFul(char *work,int x0,int y0,int x1,int y1);
void YGB_circle(char *work,int x,int y,int r);
void YGB_cls(char *work);
void YGB_color(char *work,int cnum);
void YGB_fontSize(char *work,int fx,int fy);
void YGB_frame(char *work,int *para);
int YGB_getColor(char *work,int x,int y);
void YGB_getPattern(char *work,char *dat,int x1,int y1,int x2,int y2);
void YGB_init(char *work,int s1,int s2);
void YGB_initNoCls(char *work,int s0,int s1);
void YGB_line(char *work,int x0,int y0,int x1,int y1);
void YGB_linec(char *work,int *para);
void YGB_lined(char *work,int *para);
void YGB_polygon(char *work,int *para);
void YGB_popCondition(char *work,GC *stk);
void YGB_print(char *work,int x,int y,char *para);
void YGB_pset(char *work,int x,int y);
GC *YGB_pushCondition();
void YGB_putPattern(char *work,char *dat,int x1,int y1,int x2,int y2);
void YGB_use12dotFont();
void YGB_view(char *work,int x0,int y0,int x1,int y1);
void YGB_writeMode(char *work,int mod);
void YGB_writePage(char *work,int pag);
/* MENUUTY.C */
void YGU_dispVector(char *EGB_work,int x,int y,int siz,int ang);
void YGU_menuBox(char *EGB_work,int x1,int y1,int x2,int y2);
void YGU_popScreenBlock(char *EGB_work,char *pushBuf);
char *YGU_pushScreenBlock(char *EGB_work,int x1,int y1,int lx,int ly);
int YGU_screenMode(char *EGB_work);
/* GUI Libraries */
#define YGU_getScrollBarPointer(bar) ((*bar).detail.sc.ptr)
#define YGU_getButton(btn) ((*btn).detail.bt.now)
#define YGU_getSwitch(swt) ((*swt).detail.sw.now)
#define YGU_getPullDown(pdm) ((*pdm).detail.pd.now)
#define YGU_getMenu(mnu) ((*mnu).detail.mn.prev)
#define YGU_getDialogue(dlg) ((*dlg).detail.dl.prechg)
#define YGU_nextItem(itm) ((*itm).next)
#define YGU_previousItem(itm) ((*itm).prev)
ITEM *YGU_allItemsAction(char *EGB_work,ITEM *top);
ITEM *YGU_addLongitudinalbar
(char *EGB_work,ITEM *top,int x,int y,int lx,int ly,int argc,int dspn);
ITEM *YGU_addLateralbar
(char *EGB_work,ITEM *top,int x,int y,int lx,int ly,int argc,int dspn);
ITEM *YGU_addButton(ITEM *top,int x,int y,int lx,int ly);
ITEM *YGU_addButtonSwitch(ITEM *top,int x,int y,int lx,int ly);
ITEM *YGU_addDialogue
(char *EGB_work,ITEM *top,int x,int y,int lx,int ly,char *(*a),char *sw,
int fx,int fy,int single);
ITEM *YGU_addPullDownMenu
(ITEM *top,int x,int y,int lx,int ly,
char *(*a),int px,int py,int fx,int fy);
ITEM *YGU_addMenu
(char *EGB_work,ITEM *top,int x,int y,int lx,int ly,
char *(*a),int fx,int fy);
void YGU_repaintDialogue(char *EGB_work,ITEM *dlg);
void YGU_resetScrollBar(char *EGB_work,ITEM *bar,int argc,int dspn);
void YGU_resetDialogue(char *EGB_work,ITEM *dlg,char *(*arg),char *sw);
void YGU_setDialoguePointer(char *EGB_work,ITEM *dlg,int newptr);
void YGU_setScrollBarPointer(char *EGB_work,ITEM *bar,int newptr);
void YGU_deleteAll(ITEM *itm);
void YGU_deleteItem(ITEM *itm);
void YGU_buttonSwitchOn(char *EGB_work,ITEM *btn);
void YGU_buttonSwitchOff(char *EGB_work,ITEM *btn);
int YGU_intInput
(char *EGB_work,char *mes,int mx,int mn,int df,
int x,int y,int lx,int ly,int fx,int fy);
void YGU_lineInput
(char *EGB_work,char *lin,int len,int x,int y,int lx,int ly,int fx,int fy);
void YGU_lineInputKanji
(char *EGB_work,char *lin,int len,int x,int y,int lx,int ly,int fx,int fy);
int YGU_checkDoubleClick();
int YGU_itemSerialNumber(ITEM *top,ITEM *act); /* ITEM *top は 1番 0:該当無 */
int YGU_fileSelect
(char *EGB_work,char *ttl,
unsigned *drv,char *path,char *fn,
char *wld,int x,int y,int lx,int ly,int fx,int fy);
int YGU_paraFileSelect
(char *EGB_work,char *ttl,
int maxn,unsigned *drv,char *path,char *(*fn),char *buf,
char *wld,int x,int y,int lx,int ly,int fx,int fy);
void YGU_menuLine(char *EGB,char *msg,int x,int y,int lx,int ly,int fx,int fy);
/* Troubles */
/* スクロールバーが出来ない */
/* 縦横のサイズが極端に正方形に近い場合はYGU_addLongitudinalbar /
YGU_addLateralbarはNULLを返す。 */
/* プルダウンメニューが開かない */
/* メモリが不足で、プルダウンメニュー表示部に対して十分な画面退避
バッファが確保できない場合はプルダウンメニューが開かない。 */
/* FileSelectorが誤動作する/ハングする */
/* pathには64バイト fnには13バイト以上のスペースが必要。drvとpathと
fnは呼出し側で初期化しなくてはならない。カレントディレクトリから
選択を開始する場合は、path[0]=0; としておく。また、fnの初期状態が
"DUMMY.DAT"の場合は、char fn[13]; strcpy(fn,"DUMMY.DAT");を実行
しておかなくてはならない。また、カレントドライブから選択を開始
する場合は、drv=0;としておく。その他の注意としては、lx,lyが、フォ
ントの大きさに対して、あまりにも小さい時は、画面が崩れる可能性が
ある。 */